from selenium.webdriver import Edge
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

url = "https://www.lagou.com"
web = Edge()
web.get(url)

# 加载页面
time.sleep(1)

# 查找元素,模拟鼠标点击一下
el = web.find_element(By.XPATH, '//*[@id="changeCityBox"]/p[1]/a/i')
el.click()

time.sleep(1)  # 加载页面

# 打开搜索框，输入
ins = web.find_element(By.XPATH, '//*[@id="search_input"]')
ins.send_keys("java", Keys.ENTER)  # 输入java回车
time.sleep(1)  # 加载一下

# 打开新窗口
el = web.find_element(By.XPATH, '//*[@id="jobList"]/div[1]/div[1]/div[1]/div[1]/div[1]/a')
el.click()

# 如何进入串口窗口进行提取
# 注意，在selenium中窗口默认是切换不过来的
# 所以要进行一个窗口切换（切换到最后一个窗口）
web.switch_to.window(web.window_handles[-1])  # web.window_handles[-1]切换到浏览器选项卡最后一个窗口

# 在新窗口中提取数据
job_detail = web.find_element(By.XPATH, '//*[@id="job_detail"]/dd[2]/div').text
print(job_detail)

# 关闭子窗口
web.close()
# 变更selenium的视角，回到原来的窗口
web.switch_to.window(web.window_handles[0])

time.sleep(0.5)
print(web.find_element(By.XPATH, '//*[@id="jobList"]/div[1]/div[1]/div[1]/div[1]/div[1]/a').text)

time.sleep(1000)

'''
D:\Python\python.exe D:/Python文件/爬虫/五selenium/03窗口切换.py
岗位职责：
1. 协助技术总监制定、优化完善和跟进落地研发流程、技术规范和质量保障体系；
2. 负责公共通用服务和基础服务的开发和维护，并沉淀技术平台能力、技术架构和最佳实践；
3. 参与 / 负责核心系统的技术选型、架构设计、技术方案/代码评审和风险评估，把控交付质量；
4. 分析、优化和重构现有的系统架构、服务边界和技术方案，主导关键方案的落地实现；
5. 负责技术研究和攻关工作，解决系统开发/运行中的各种问题，保障系统的稳定、性能和安全；
6. 指导研发过程，培养和提升开发人员的开发和架构设计能力；
7. 跟踪业内的技术动向，对关键技术、新技术研究成果进行分享和推广。

任职要求：
1. **大学本科及以上学历，计算机技术相关专业，2 年以上架构师经验；
2. 计算机基础扎实，精通 Java 开发语言，精通面向对象分析设计，包括设计模式、UML 建模等；
3. 熟悉主流 Java 框架，包括但不限于 MyBatis，Spring Boot，Spring Cloud，Netty 等；
4. 熟悉常用的开源平台和中间件，包括但不限于 RocketMQ，Kafka，ElasticSearch，ClickHouse，Redis，MySQL 等，有大数据经验尤佳；
5. 高并发、高性能、高可用的分布式微服务系统设计和优化，注重可扩展性和可维护性；
6. 能够胜任核心模块的系统分析、设计及编码工作，有抽象设计和维护公共组件 / 模块的能力，能够胜任复杂技术问题和故障的解决；
7. 熟悉基于 Linux、Jenkins、Sonar、Maven、Docker、K8S 等技术的 DevOps 开发运维一体化体系，熟悉了解 CI / CD、测试驱动开发、领域驱动设计等先进工程实践；
8. 具备优秀的文档能力，能够清晰明了地表达架构意图，能够熟练编写各类技术文档；
9. 正直进取，有良好的沟通能力、学习能力和自驱力，具有较强的抗压能力和责任心；
10. 具有互联网金融 / 证券公司核心系统架构设计经验优先考虑。
java架构师[广州·天河区]

# 在遇到iframe， 必须先拿到iframe，然后切换视角到iframe，然后才能拿到数据
iframe = wen.find_element(By.XPATH, '//*[$id='player_frame']')
web.switch_to.iframe(iframe)  # 切换到iframe
web.switch.default_content()  # 切换到之前的页面
content = web.find_element(By.XPATH, '').text()

'''
